package com.mi.million.module.system.service;


import com.mi.million.common.util.BaseService;
import com.mi.million.mybatis.entity.SysDict;
import com.mi.million.mybatis.entity.SysMenu;
import com.mi.million.mybatis.entity.SysResource;
import com.mi.million.mybatis.entity.SysUser;
import com.mi.rule.util.project.SRS;

import java.util.List;

/**
 * <p>
 * 资源表 服务类
 * </p>
 *
 * @author 王永吉
 */
public interface SystemService extends BaseService {
    /**
     * 项目启动时调用一次
     * <p>
     * 1.清除已失效资源
     * 2.更新已存在的资源
     * 3.添加新资源
     * 4.插入到缓存中
     */
    SRS systemResourceCleanAdd(SRS param);

    /**
     * 项目启动时调用一次
     * 刷新角色菜单和角色资源
     */
    SRS refreshRoleMenuAndResource(SRS param);

    //资源列表
    List<SysResource> resources();

    //菜单列表
    List<SysMenu> menus();


    SRS insertDict(SysDict dict);

    SRS deleteDict(Object[] ids);

    SRS removeDictCache();

    SRS updateDict(SysDict dict);

    SRS pageDict(SRS param);

    SRS listDict(SRS dict);

    SRS infoDict(SRS param);

    SRS insertMenu(SysMenu menu);

    SRS deleteMenu(Object[] ids);

    SRS updateMenu(SysMenu menu);

    SRS pageMenu(SRS param);

    SRS listMenu(SRS param);

    SRS infoMenu(SRS param);

    SRS updateResource(SysResource resource);

    SRS pageResource(SRS param);

    SRS listResource(SRS param);

    SRS infoResource(SRS param);

    SRS login(SRS param);

    SRS resetPassword(SRS param);

    void updateVersion(Object o);

    SRS refreshMenu(SysMenu[] menus);

    SRS updatePassword(SRS param);

    SRS insertSysUser(SysUser param);

    SRS deleteSysUser(Object[] ids);

    SRS updateSysUser(SysUser param);

    SRS listSysUser(SysUser param);

    SRS pageSysUser(SRS param);

    SRS infoSysUser(SRS param);

    SRS refreshToken(SRS param);

    //    登录日志
    SRS loginTimeline(SRS param);
}
